package modele;

import java.rmi.RemoteException;

public class SoutienOffensif extends Soutien {
	private Region regionAttaqueParSoutenu;

	public SoutienOffensif(Puissance commanditaire, String typeU, Region regOr, Region regSoutenu,
			Region regAttaqueParSoutenu) throws RemoteException {
		super(commanditaire, typeU, regOr, regSoutenu);
		this.regionAttaqueParSoutenu = regAttaqueParSoutenu;
	}

	public Region getRegionAttaqueParSoutenu() {
		return regionAttaqueParSoutenu;
	}

	@Override
	public String getTypeOrdre() {
		return "Soutien Offensif";
	}

	@Override
	public boolean verifValidite() {
		// FR A SER S TRI - BUD
		// Si la region soutenu possede une unite (-> Unite sur TRI)
		if (super.getRegionSoutenu().getOccupant() != null) {
			// Si region et region attaque frontalier
			if (super.getRegOrigine().isFrontalier(this.regionAttaqueParSoutenu)) {
				// Terrestre ne peut pas soutenir marrin
				if (super.getRegOrigine().isTerrestre()
						&& !this.regionAttaqueParSoutenu.isTerrestre()) {
					return false;
				}
				return true;
			}
		}
		return false;
	}

	public String toString() {
		return "Ordre de Soutien offensif de la puissance " + super.getCommanditaire()
				+ " avec une unite de type " + super.getTypeUnite() + "Origine : "
				+ super.getRegOrigine() + " attaque soutenu : " + super.getRegDestination()
				+ " vs " + this.regionAttaqueParSoutenu;
	}

}
